#ifndef __ORDER_LIST_H__
#define __ORDER_LIST_H__

// 引用头文件
#include "head.h"

// 订单数据结构体
typedef struct D_data
{
    char name[16];     // 用户名
    F_data ticket;     // 存储航班信息
    int numTickets;    // 用来储存订单数量
} D_data;

// 用户数据节点 - 单链表
typedef struct D_node
{
    D_data data;
    struct D_node *next;
} D_node;

typedef struct D_list
{
    D_node *next;
} D_list;

// 声明函数
// 单链表的创建
D_list* R_List_init();

// 单链表的插入
void R_List_insert(D_list* list, D_data data, int pos);

// 单链表的删除
void R_List_delete(D_list *list, int pos);

// 单链表的查找
D_node *R_List_find_id(D_list *list, int id);
D_node* R_List_find_name(D_list* list, char* name);
int R_List_find_name_n(D_list *list, char *name);  //找到账户所在行
int R_List_find_id_n(D_list *list, int id,char *name); // 找到航班和名字都符合的行数

// 单链表的遍历
void R_List_print(D_list* list);

// 单链表的清空
void R_List_clear(D_list* list);

// 单链表的销毁
void R_List_free(D_list **list);

// 向文件写入用户信息
void R_List_File_print(D_list *list, const char *file_name);

// 从文件读取用户信息
void R_List_File_scanf(D_list *list, const char *file_name);

// 查找并打印符合条件的订单 
int findOrder(D_list *head, const char *name); 

// 找出同一用户的相同订单
int Find_Same_Order(D_list *head, const char *name ,int id);

#endif // __ORDER_LIST_H__